package com.allen.imsystem.user.service;

import com.allen.imsystem.user.model.pojo.User;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springframework.stereotype.Service;

import java.util.Map;

/**
 * 用户模块相关的业务逻辑接口
 */
@Service
public interface UserService extends IService<User> {

    /**
     * 查询该邮箱地址是否已经被注册
     */
    boolean isEmailRegisted(String email);


    /**
     * 用户注册
     */
    void regist(String email, String password, String username);

    /**
     * 用户登录
     * @return 返回user对象，及newToken
     */
    Map<String,Object> login(String uid, String password);

    /**
     * 用户下线
     * @param uid 用户账号
     */
    void logout(String uid);

    /**
     * 获取用户在线状态
     */
    Integer getUserOnlineStatus(String uid);

    boolean isOnline(String uid);

    /**
     * 忘记密码。 重设密码
     */
    void forgetPassword(String email, String newPassword);

    /**
     * 修改密码
     */
    String modifyPassword(String uid, String oldPassword, String newPassword);

    void updatePassword(User user, String password);
}
